import DataUtil from "../../utils/DataUtil.js";
//加载第三方依赖，实现JS的异步转同步方向
import regeneratorRuntime from "../../libs/regenerator-runtime/runtime.js";
//笑话的组件
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    //笑话列表  []代表集合
    jokeList: []
  },
  //代表组件已经创建好了被加载的时候
  async attached() {
    this.getJokeList();
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //去详细页
    toDetail(event) {
      //首先要拿到当前点击的数据
      var itemindex = event.currentTarget.dataset.itemindex;
      //拿到这个索引以后，就可以从数组里面去取出这个值
      var item = this.data.jokeList[itemindex];
      wx.setStorageSync("currentItem", item); //放入缓存 

      wx.navigateTo({
        url: '/pages/detail/detail'
      });
    },
    async getJokeList() {
      //检测一下缓存里面是否有值呢
      var jokeList = wx.getStorageSync('jokeList');
      if (jokeList) {
        //这代表缓存里面有数据
        this.setData({
          jokeList: jokeList
        });
      } else {
        wx.showLoading({
          title: '正在加载数据'
        });
        //在这里把缓存里面的上一次ID拿出来
        var previousJokeIds = wx.getStorageSync('previousJokeIds')||[0,0];
        //await只能等Promise的成功的结果
        var result = await DataUtil.getJokeList(previousJokeIds);
        if(result.list.length>0){
          this.setData({
            jokeList: result.list
          });
          wx.setStorageSync('jokeList', result.list);
          //我请求完成以后，我还要保存第一项与最后一项的ID
          var startId = result.list[0].id;
          var endId = result.list[result.list.length-1].id;
          //将这个东西保存起来，以便下次使用
          wx.setStorageSync('previousJokeIds', [startId,endId]);
        }
        wx.hideLoading();
        //停止下拉刷新的操作
        wx.stopPullDownRefresh();
      }
    }
  }
})